Product edition systems are known to include Computer-Aided Design or CAD, which relates to software solutions for authoring product design. Similarly, CAE is an acronym for Computer-Aided Engineering, e.g. it relates to software solutions for simulating the physical behavior of a future product. CAM stands for Computer-Aided Manufacturing and typically includes software solutions for defining manufacturing processes and operations.
A number of products and programs are offered on the market for the design of objects (or parts) or assemblies of objects, forming a product, such as the one provided by Dassault Systèmes under the trademark CATIA. These CAD systems allow a user (e.g. a designer) to construct and manipulate complex three dimensional (3D) models of objects or assemblies of objects. CAD systems thus provide a representation of modeled objects using edges or lines, in certain cases with faces.
Lines or edges may be represented in various manners, e.g. non-uniform rational Bsplines (NURBS). These CAD systems manage parts or assemblies of parts as modeled objects, which are mostly specifications of geometry. Specifically, CAD files contain specifications, from which geometry is generated, which in turn allow for a representation to be generated. Geometry and representation may be stored in a single CAD file or multiple ones. CAD systems include graphic tools for representing the modeled objects to the designers; these tools are dedicated to the display of complex objects—the typical size of a file representing an object in a CAD system being in the range of one Megabyte per part, and an assembly may comprise thousands of parts. A CAD system manages models of objects, which are stored in electronic files.
In computer-aided techniques, the graphical user interface (GUI) plays an important role as regards the efficiency of the technique. In particular, the GUI provides user/computer interactions.
From a CAD systems standpoint, an object is basically a file which comprises at least a name. These files can be stored on databases. Databases are structured to facilitate storage, retrieval, modification, and deletion of data in conjunction with various data-processing operations. Databases generally consist of a file or set of files that can be broken down into records, each of which consists of one or more fields. Fields are the basic units of data storage. Users retrieve database information primarily through queries. Using keywords and sorting commands, users can rapidly search, rearrange, group, and select the field in many records to retrieve or create reports on particular aggregates of data according to the rules of the database management system being used.
CAD systems include graphic tools for representing the modeled objects to the users. The modeled objects are represented in a scene wherein the spatial relationships between objects are defined. The scene is composed of at least two objects. These graphic tools are dedicated to the creation, the display, the modification of complex objects. In particular, the modification of a property of an object, or the part of an object, can be made via the modification of one or more parameter that determines the property of the object. The property of an object is a set of attributes of the object, that is, a set of qualities or features representative of the object. The modification of one or more parameter may result from the action of a graphic tool on the object. In such a case, modifying the properties of an object is a permanent modification as the modification is saved. For instance, the user may use a milling tool so as to round off the rough edges of a cubic object. The milling tool acts on one or more parameter of the cubic object and modifies geometrical properties of the objects, e.g. the milling tool mills an edge of the cubic object. A modification performed by the milling tool on one or more parameter of the cubic object is thus a permanent modification.
However, the user may wish an easy and progressive modification of one or more property of the object, but also a dynamic modification of said property. For instance, the user may wish a progressive action of the milling tool on the geometrical properties of the cubic object according to the distance between the milling tool and the cubic object.
Thus, one important problem in the field of visualizing objects displayed on a computer screen is that a user may wish to move or modify a property of a given object displayed in the scene according to the distance between this object and another object, i.e. an active object (for instance a tool) acting on a target object (the given object).
The problem of the evaluation of a distance between an object and another object has been discussed in the literature. Several solutions permit to measure the distance between two objects which are displayed in a scene.
For making it possible to the designer to measure a distance between two objects displayed in a scene, most of softwares discussed in the literature provide means for identifying the objects. Indeed, measuring a distance is only possible if at least two objects are identified. In general, softwares use a dedicated mode referred to as “selection mode” which enables to select an object or a part of an object that is the closest in the direction normal of the screen.
Classically the selected object is highlighted so as to visually indicate to the designer what object is selected. However, such a solution does not answer efficiently to the above problem for various reasons. For instance the selection is based on mouse cursor which is not a 3D object in the scene; consequently, it only moves in a 2D plane of the screen. Thus, selection is restricted to the first object in the normal direction of the plane. In addition, one may note that in such a selection process, object attributes are not modified and an overlay is added on the selected object to make the selection visible.
Once an object or a part of an object has been selected by the designer via the “selection mode”, the distance between two objects may be measured.
A first known solution for measuring a distance between two objects is stereovision, which reproduces a 3D natural vision. That solution consists in computing two images with a small shift of the point of view and then superposing the two images. To be usable, the designer needs to wear special glasses. In short: this method needs twice more computations (two images per frame instead of a single one are required). It further requires specific device. Finally, it can and does not provide accurate information since it primarily focuses on mimicking human vision.
A second solution relies on projection walls. Projection walls are planes that are axis aligned and delimit the scene. They are used to display the 2D projection of objects. This technique resolves the problem of selecting objects mentioned above. However, even if the display is fully integrated into the scene, it adds a lot of visual complexity. Moreover taking each projection separately is not sufficient for having precise information on distances.
A third solution relies on displaying a panel where distance between two selected objects is “physically” materialized on the screen. Here, various selection schemes of objects are available, including selection through a list of the set of the objects or selection of objects directly in the scene with a dedicated mean (for instance a mouse pointer). Despite that such a solution provides a precise result, it presents a couple of major drawbacks. For instance, the selection of the objects might be cumbersome in a massive scene which comprises multiples objects or part of objects. Another drawback is that the information is not integrated in the scene since panels showing the distance between objects are displayed on the screen and may take a lot of visual place, the objects in the scene being partially or entirely hidden by the panels.
Another solution has been developed so as to alleviate the drawback evocated previously. In order to avoid the display of a panel in the scene, the solution consists in displaying the result of the measure directly in the scene. To achieve that goal a line between the objects of interest is plotted, and once the line has been plotted, a numerical value is displayed on the line and show the result of the measure. However, such a solution has several drawbacks. This is depicted in FIG. 2, illustrating the known solution. As shown in the figure, two objects, a cube and a sphere, are part of the scene displayed in the graphical user interface. In order to measure the distance between the sphere and the cube, an arrow is plotted. The arrow links the two objects, and more precisely, the arrow connects two points that respectively belong to one of the two objects displayed, i.e. the centre of the sphere and a point of the face of the cube in front of the sphere. Once the arrow is plotted, the corresponding distance is displayed on a dedicated banner.
Consequently, the measure of a distance depends on the points selected that determine the arrow. Creating the arrow can be difficult notably as the user has to position the points in a 3D scene. For instance, as shown in FIG. 2, the user can easily select the center of the sphere, thanks to a graphical indication. On the contrary, if the user wants to measure the distance between the cube and a closest point of the sphere facing the cube, selection of such a point is not intuitive.
Moreover, if the scene comprises a plurality of objects and if the user wants to measure several distances between objects of the scene, a respective number of arrows has to be determined and plotted. This may lead to arrows crossing each other and jeopardize the interpretation of the relevant data.
Thus, current product edition systems do not provide the possibility for modifying a property of an object displayed in a scene according to the distance between this object and another object.
Therefore, according to the limitations of the existing solutions shortly discussed above, there is a need for an improved method for visualizing objects displayed in a scene on a computer screen and for modifying a property of a scene according to a distance between objects displayed in the scene.